Spacecrafts are frequently used to facilitate communication, gather scientific data, facilitate geopositioning and conduct extraterrestrial observations. For example, space-based observatories enable observations without being subject to weather constraints and atmospheric effects that affect a quality of the observations. For example, satellites are indispensable for observation systems that gather scientific data regarding climate and natural resources at a global scale.
In some applications the spacecraft has to be maintained at a base pose. For example, a number of applications use of a constellation of two or more cooperating spacecrafts. The use of the spacecraft for such applications requires that the distance between each spacecraft in the constellation is maintained with a fairly high accuracy. Accordingly, the spacecraft has to be positioned in a particular arrangement within prescribed error ranges.
Unfortunately, spacecrafts are subject to “perturbative” forces, such as those caused by the non-uniform gravity of the Earth, gravitational effects of other heavenly bodies, solar pressure, atmospheric drag, and propulsion systems. For spacecrafts in low altitude orbits, atmospheric drag is usually the predominant perturbative force. The perturbative forces vary due to a number of factors, including the oblateness (J2) of the Earth, variations in atmospheric density and temperature, and the magnitude of solar activity.
Because the forces due to these factors can be non-uniform, and because the mass and profile of each spacecraft can vary over time and from one spacecraft to another, atmospheric drag and the other perturbations affect the inter-spacecraft spacing of constellations of spacecrafts. Thus, if no action is taken, the spacecraft is displaced from its predetermined positions and move beyond their prescribed error ranges. In order to maintain proper inter-spacecraft positioning, the spacecraft in the constellation compensates for the perturbative forces.
Recent applications based on a dual-spacecraft configuration require a “follower” spacecraft to be at a fixed relative position with respect to a “leader” spacecraft, within an error range, in an order of centimeters, for long periods of time while being subject to known disturbances such as differential drag, and J2 effects. A state, i.e., position and velocity, of the spacecraft is s=[x, vx, y, vy]T, controls available at the spacecraft are c=[ΔVx, ΔVy]T, and T is a transpose operator. The dynamics of the spacecraft can be described according to a difference equation,sk+1=Ask+Bck+dk,where matrices A and B represent physical characteristics of the spacecraft, and a vector dk represents the perturbative forces. The difference equation determines a next k+1 state of the spacecraft at a next time step based on a current state k of the spacecraft, the control, and the perturbative forces.
Linear Quadratic Regulator
One conventional formation-keeping method is based on a linear quadratic regulator (LQR), which is a type of a feedback controller. The LQR defines a desired state of the spacecraft as s=[0, 0, 0, 0]T, which describes the spacecraft at a predetermined position. Then, any non-zero value for the position and the velocity of the spacecraft is considered a displacement that must be minimized.
A quadratic cost function J to minimize is
      J    =                  1        2            ⁢                        ∑                      k            =            1                    ∞                ⁢                  [                                                    s                k                T                            ⁢                              Qs                k                                      +                                          c                k                T                            ⁢                              Rc                k                                              ]                      ,where Q and R are typically diagonal matrices whose elements correspond to weights on the state error and control cost. An optimal solution for systems with controls that are continuous in magnitude and are applied during the extent of every time step is a feedback law that relates the control directly to the current state,ck=−Ksk  (1)whereK=BTPB+R)−1BTPA, and P is the solution of the algebraic Riccati equation,ATPA−P−ATPB(BTPB+R)−1BTPA+Q=0.
Although LQR controllers are generally used in spacecraft systems, where the control is continuous in time and magnitude, an impulsive approximation is carried out by modulating either the magnitude or the time periods between the impulses.
Time-Modulated LQR Control
Time-modulated LQR control is based on setting a threshold value for the control input ΔVthresh. During the time interval between impulses, disturbances can cause the spacecraft to be displaced from the predetermined position, so the magnitude of the state variables sk increases, and the magnitude of the control variables ck also increases according to Equation (1). When the control reaches the threshold, an impulse of magnitude ΔVthresh is applied to the spacecraft. The threshold value and the weight matrices Q and R can be obtained empirically. Thus, in the time-modulated LQR control method, the magnitude of the impulsive force is always fixed, and the method determines only the times when the impulses are issued.
Magnitude-Modulated LQR Control
Magnitude-modulated LQR control is based on fixing the times of the impulses at constant intervals, and applying the impulse magnitude that is provided by the feedback law in Equation (1). The impulse times are generally obtained by empirically adjusting the duration of the time step and the weight matrices Q and R. If the disturbances are known, then future disturbance can be integrated forward during the current time step to yield a feedforward term ΔVff that can be added to the feedback ΔV.
Limitations of LQR controllers include hard constraints, such as error thresholds, cannot be specified directly but only through the adjustment of parameters. Controllers can use the knowledge of disturbance during the time step, but no optimization is performed. LQR formation-keeping with error thresholds of less than a meter require time steps of a few seconds, which yield a large number of impulses. Furthermore, magnitude-modulated LQR control requires defining small time steps of the order of a few seconds, which further increases the number of impulses.
Linear Programming Control
Another formation-keeping method uses linear programming (LP) to generate control plans for a predetermined time in the future, to keep the spacecraft near the predetermined position, while minimizing propellant consumption. A length of the time is defined as the number of time steps in the future considered by the optimization.
A vector containing the states parameters s, control parameters c, and optimization parameters w for each future time step is z=[s0, c0, w0, s1, c1, w1, . . . , sN]T, and d=[d0, d1, . . . , dN−1]T is a vector of known disturbances during the predetermined future time period. Vectors containing lower and upper bounds on the states, controls, and optimization parameters, are bL=[s0, cmin, 0, smin, cmin, 0, . . . , smin]T and bU=[s0, cmax, wmax, smax, cmax, wmax . . . , smax]T respectively. For the generation of the plan, an initial state s0 is constant and is determined by measurements. The corresponding LP problem is,min fTzsubject tobL≦z≦bU, Cz=d, Ez≦0,where
      f    =                  [                                            0                                      0                                      1                                      0                                      0                                      1                                      …                                      0                                      ]            T            C    =          [                                                  -              A                                                          -              B                                            0                                I                                0                                0                                0                                …                                0                                0                                0                                0                                                0                                0                                0                                              -              A                                                          -              B                                            0                                I                                …                                0                                0                                0                                0                                                …                                …                                …                                …                                …                                …                                …                                …                                …                                …                                …                                …                                                0                                0                                0                                0                                0                                0                                0                                …                                              -              A                                                          -              B                                            0                                I                              ]                  E      =              [                                            0                                      I                                                      -                I                                                    0                                      0                                      0                                      …                                      0                                      0                                      0                                                          0                                      0                                      0                                      0                                      I                                                      -                I                                                    …                                      0                                      0                                      0                                                          …                                      …                                      …                                      …                                      …                                      …                                      …                                      …                                      …                                      …                                                          0                                      0                                      0                                      0                                      0                                      0                                      …                                      0                                      I                                                      -                I                                                                        0                                                      -                I                                                                    -                I                                                    0                                      0                                      0                                      …                                      0                                      0                                      0                                                          0                                      0                                      0                                      0                                                      -                I                                                                    -                I                                                    …                                      0                                      0                                      0                                                          …                                      …                                      …                                      …                                      …                                      …                                      …                                      …                                      …                                      …                                                          0                                      0                                      0                                      0                                      0                                      0                                      …                                      0                                                      -                I                                                                    -                I                                                    ]              ,    and  where 1 is a vector of ones, 0 is a vector or matrix of zeros depending on the context, and I is the identity matrix.
However, the conventional LP approach is inaccurate and unreliable. For example, some definitions of hard constraints make the problem infeasible, i.e., the controller cannot determine a solution for maintaining the spacecraft within the error range. Thus, the spacecraft is without an effective control plan. Even if a solution can be determined, the execution of an open-loop control plan is not always accurate and causes the spacecraft to be at positions outside the prescribed error range. Also, the LP problem assumes that the variables are continuous, so quantization of the parameters for control is not considered.